Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
4173 Assertions? Hast Du da ewig große Loops oder woher kommt diese doch erstaunlich große Zahl an Assertions für so wenige Test-Cases?
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
TEST_CASE("Dungeon Terrain", "Dungeon") { auto terrain = createTerrain(); core::Dungeon dungeon{terrain, {64u, 64u}}; auto size = dungeon.getMapSize(); REQUIRE(size.x == 64u); REQUIRE(size.y == 64u); sf::Vector2u pos; for (pos.x = 0u; pos.x < 64u; pos.x++) { for (pos.y = 0u; pos.y < 64u; pos.y++) { auto tile = terrain[pos.x + 64u * pos.y]; REQUIRE(dungeon.getTerrain(pos) == tile); } } REQUIRE(dungeon.getTerrain({65u, 30u}) == core::Terrain::Void); } |
http://en.wikipedia.org/wiki/Test-driven_development
Mehr gibt's dazu nicht zu sagen.
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
C-/C++-Quelltext |
|
1 2 3 4 5 |
void setSize(int x, int y) { this->someWeirdStuff()->getSize().x = x; this->someWeirdStuff()->getSize().y = x; // copy/paste bug } |
Kleiner Tipp: Wenn Du schon Dimensionen prüfst, nimm verschieden große. Übliche Bugs bei sowas beruhen auf Copy-Paste, sodass x/y dieselben Werte erhalten, obwohl es eigentlich verschiedene sein sollten, weil vergessen wurde etwas nach dem Paste zu ändern. Wenn man mehrere Werte prüft, am besten immer unterschiedliche.
C-/C++-Quelltext
1 2 3 4 5 void setSize(int x, int y) { this->someWeirdStuff()->getSize().x = x; this->someWeirdStuff()->getSize().y = x; // copy/paste bug }
Und glaub mir, Copy/Paste Bugs nehmen eine erstaunlich große Prozentzahl aller Bugs ein. So groß, dass teilweise hier schon gewisse Scrum-Master gedroht haben uns die Paste-Shortcuts zu sperren
[...]
Eigentlich alles was sehr Thread belastet ist.
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Grafik / Shader sind schwer zu testen
Network ist auch schwer.
Naja ganz so einfach ist es nicht.
Verbindungsabbrüche, langsame Verbindung, mobile Verbindung, gar keine Verbindung etc.
Das geht schon in Richtung Negativtests bzw. nicht erfüllte Systemvoraussetzungen.Zitat von »Bambi«
Network ist auch schwer.
Warum? Ich schreibe einen Test wo Server und Client erzeugt werden und sende dann ein paar Kommandos und prüfe ob diese korrekt angekommen sind.
Naja ganz so einfach ist es nicht.
Verbindungsabbrüche, langsame Verbindung, mobile Verbindung, gar keine Verbindung etc.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »4xfusion« (29.01.2015, 20:10)
Testcases zum abdecken Deiner neuen Funktionen bzw. codes reichen völlig.
In erster Linie sollte es für Dich darum gehen, dass der Kram inklusive Tests erfolgreich durchläuft, dann bekommst Du wenigstens mit wenn grundlegende Dinge nicht funktionieren.
Rückgabewerte etc..
Als one man show sowieso nötig, weil es keinen code reviewer gibt ...
Also macht man sich mindestens die Mühe für funktionale Tests.
Werbeanzeige