Seite 1 von 1
Fachbegriffe für Umgebungen in Python
Verfasst: Mittwoch 1. November 2023, 18:13
von mister_xyz
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?
Re: Fachbegriffe für Umgebungen in Python
Verfasst: Mittwoch 1. November 2023, 18:40
von sparrow
Gitlab hat nichts mit Java zu tun. Und darin wird auch nichts geprüft.
Re: Fachbegriffe für Umgebungen in Python
Verfasst: Mittwoch 1. November 2023, 18:58
von mister_xyz
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?
Re: Fachbegriffe für Umgebungen in Python
Verfasst: Mittwoch 1. November 2023, 19:23
von __blackjack__
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.
Re: Fachbegriffe für Umgebungen in Python
Verfasst: Mittwoch 1. November 2023, 19:37
von mister_xyz
__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?
Re: Fachbegriffe für Umgebungen in Python
Verfasst: Mittwoch 1. November 2023, 19:51
von __blackjack__
@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.
Re: Fachbegriffe für Umgebungen in Python
Verfasst: Mittwoch 1. November 2023, 20:06
von pillmuncher
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?
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.