Fachbegriffe für Umgebungen in Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mister_xyz
User
Beiträge: 21
Registriert: Freitag 6. Oktober 2017, 18:59

In Java gibt es ein sogenanntes "Gitlab-Repository", worin Lauffähigkeit, Funktionalität, angemessene Dokumentation und Objektorientierung geprüft wird. Wie heißen bitte die entsprechenden Fachbegriffe bzw. Pendants in Python?
Benutzeravatar
sparrow
User
Beiträge: 4202
Registriert: Freitag 17. April 2009, 10:28

Gitlab hat nichts mit Java zu tun. Und darin wird auch nichts geprüft.
mister_xyz
User
Beiträge: 21
Registriert: Freitag 6. Oktober 2017, 18:59

Gibt es eine spezielle Python Umgebung/Python Programme, die speziell nur für Python gedacht sind, und wo Lauffähigkeit, Funktionalität, Fehler geprüft wird?
Benutzeravatar
__blackjack__
User
Beiträge: 13139
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Es gibt mehrere Programme für die statische Analyse wie Pylint oder Pyflakes für allgemeine Sachen, aber auch so etwas wie Bandit was auf Sicherheitsprobleme spezialisiert ist.

Dann gibt es Unit-Tests, wo die Standardbibliothek schon was mitbringt, was Viele aber nicht besonders „pythonisch“ finden, weil das auf der XUnit-API basiert, die quasi ”sprachübergreifend” ist, die sich aber unter dynamischen Programmiersprachen halt sehr nach C++ oder Java anfühlt. Darum verwenden nicht wenige Pytest für Unit-Tests.

Mit automatisierten Tests kombiniert man üblicherweise auch etwas das die Testabdeckung erfasst, wie das `coverage`-Package. Das man beispielsweise auch in Pytest einbinden kann.

Ebenso kann man Pytest auch gleich Doctests mit überprüfen lassen, was natürlich auch mit dem `doctest`-Modul aus der Standardbibliothek separat geht.

Angemessene Dokumentation und Objektorientiertheit kann man nicht automagisch prüfen. Versuche und Metriken um so etwas zu machen enden sehr oft mit *schlechterem* Code. Nutzlose “Dokumentation“ und Klassen die keine sind oder zumindest den Code komplizierter machen als er sein müsste.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
mister_xyz
User
Beiträge: 21
Registriert: Freitag 6. Oktober 2017, 18:59

__blackjack__ hat geschrieben: Mittwoch 1. November 2023, 19:23 Es gibt mehrere Programme für die statische Analyse wie Pylint oder Pyflakes für allgemeine Sachen, aber auch so etwas wie Bandit was auf Sicherheitsprobleme spezialisiert ist.

Dann gibt es Unit-Tests, wo die Standardbibliothek schon was mitbringt, was Viele aber nicht besonders „pythonisch“ finden, weil das auf der XUnit-API basiert, die quasi ”sprachübergreifend” ist, die sich aber unter dynamischen Programmiersprachen halt sehr nach C++ oder Java anfühlt. Darum verwenden nicht wenige Pytest für Unit-Tests.

Mit automatisierten Tests kombiniert man üblicherweise auch etwas das die Testabdeckung erfasst, wie das `coverage`-Package. Das man beispielsweise auch in Pytest einbinden kann.

Ebenso kann man Pytest auch gleich Doctests mit überprüfen lassen, was natürlich auch mit dem `doctest`-Modul aus der Standardbibliothek separat geht.

Angemessene Dokumentation und Objektorientiertheit kann man nicht automagisch prüfen. Versuche und Metriken um so etwas zu machen enden sehr oft mit *schlechterem* Code. Nutzlose “Dokumentation“ und Klassen die keine sind oder zumindest den Code komplizierter machen als er sein müsste.
Was ist denn am besten geeignet, um Computerspiele auf Fehler zu testen?
Benutzeravatar
__blackjack__
User
Beiträge: 13139
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mister_xyz: (Menschliche) Spieler. 🤓

Falls noch nicht vorhanden, würde ich erst mal zu Unit-Tests raten. Wobei es auch ein bisschen auf die Art des Spiels ankommt. Bei Runden- und/oder Regelbasierten Spielen lassen sich einfacher Tests schreiben als bei Actionspielen.
“There will always be things we wish to say in our programs that in all known languages can only be said poorly.” — Alan J. Perlis
Benutzeravatar
pillmuncher
User
Beiträge: 1485
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

mister_xyz hat geschrieben: Mittwoch 1. November 2023, 19:37 Was ist denn am besten geeignet, um Computerspiele auf Fehler zu testen?
Was für Fehler meinst du? Laufzeitfehler (Division durch Null, Zugriff auf ein Attribut, welches das Objekt gar nicht besitzt, zB. weil man sich vertippt hat, ...)? Algorithmische Fehler? Also solche, wo eine Berechnung nicht das berechnet, was man will? Designfehler? Fehler im Spielablauf? Oder Fehler in den Kommentaren, wie etwa diesen?

Code: Alles auswählen

# den Wert von i um eins erhöhen:
i -= 1
Wobei hier der Fehler gar nicht darin besteht, dass der Kommentar genau das Gegenteil beschreibt von dem, was der Code macht, sondern dass das ja offensichtlich ist, und man es nicht nochmal im Kommentar wiederholen braucht.

Außerdem kann ein Spiel ja alles Mögliche sein. Man kann Verstecken spielen, Schach, WoW, Patience legen, oder auch Doktor spielen. Oder auch um Geld Würfeln oder Pokern. Je nachdem muss man auch jeweils testen. Beim Schach kann zB. der König nie geschlagen werden. Ein Schachprogramm, dass das erlauben würde, wäre fehlerhaft. Darauf kann man testen, aber das ist spezifisch auf eine Schachregel bezogen.
In specifications, Murphy's Law supersedes Ohm's.
Antworten