Fachbegriffe für Umgebungen in Python
-
- 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?
-
- 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?
- __blackjack__
- User
- Beiträge: 13937
- 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.
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.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
-
- User
- Beiträge: 21
- Registriert: Freitag 6. Oktober 2017, 18:59
Was ist denn am besten geeignet, um Computerspiele auf Fehler zu testen?__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.
- __blackjack__
- User
- Beiträge: 13937
- 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.
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.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
- pillmuncher
- User
- Beiträge: 1527
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
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?mister_xyz hat geschrieben: ↑Mittwoch 1. November 2023, 19:37 Was ist denn am besten geeignet, um Computerspiele auf Fehler zu testen?
Code: Alles auswählen
# den Wert von i um eins erhöhen:
i -= 1
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.