AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unit tests für JCL/JVCL

Ein Thema von TurboMagic · begonnen am 5. Aug 2020 · letzter Beitrag vom 12. Aug 2020
Antwort Antwort
Seite 1 von 3  1 23      
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.936 Beiträge
 
Delphi 12 Athens
 
#1

Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 11:35
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
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 11:49
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
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 12:05
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...
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.442 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 12:20
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.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 12:20
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.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.596 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 13:26
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.
Thomas Mueller
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.936 Beiträge
 
Delphi 12 Athens
 
#7

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 13:41
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?
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.936 Beiträge
 
Delphi 12 Athens
 
#8

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 14:16
Siehe hier, Thema vom 5.8.2020, kann scheinbar nicht direkt da hin verlinken:
https://newsportal.delphi-jedi.org/t...p=jedi.general
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.936 Beiträge
 
Delphi 12 Athens
 
#9

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 21:14
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...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#10

AW: Unit tests für JCL/JVCL

  Alt 5. Aug 2020, 22:24
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 5. Aug 2020 um 22:37 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 04:29 Uhr.
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