modul:m323:learningunits:lu07:aufgaben:characterization

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m323:learningunits:lu07:aufgaben:characterization [2026/09/09 11:15] – LU07.A07 - Sicherheitsnetz zuerst (neu) adminmodul:m323:learningunits:lu07:aufgaben:characterization [2026/09/09 13:53] (aktuell) – Repo-Verlinkung korrigiert: nodisp im Footer statt Link im Text admin
Zeile 19: Zeile 19:
 </code> </code>
  
-==== Detaillierte Aufgabenstellung ====+==== 1. Verhalten erkunden ====
  
-  - **Verhalten erkunden:** Rufen Sie die Funktion mit mindestens sechs Eingaben auf und protokollieren Sie die Ergebnisse. Denken Sie an Grenzfälle: leere Liste, ''maximum = 0'', mehr Punkte als das Maximum, exakt die Höchstpunktzahl. +Rufen Sie die Funktion mit verschiedenen Eingaben auf und notieren Sie, was herauskommt. Denken Sie an die Ränder: leere Liste, ''maximum = 0'', mehr Punkte als das Maximum, exakt die Höchstpunktzahl. 
-  - **Festhalten:** Schreiben Sie die beobachteten Werte als ''pytest''-Tests. Auch dann, wenn Ihnen ein Ergebnis falsch vorkommt - der Test hält fest, was //ist//, nicht was sein sollte. + 
-  - **Refactoren:** Machen Sie die Funktion lesbarSprechende Namen, benannte Konstanten, die Rundungsregel als eigene Funktion. +==== 2. Verhalten festhalten ==== 
-  - **Bewerten:** Notieren Sie, welche Ergebnisse Sie für fachlich falsch halten und was zu tun wäre, um das zu ändern.+ 
 +In ''main_test.py'' sind sechs Tests vorbereitet, die noch ''0'' als erwarteten Wert enthaltenTragen Sie den **beobachteten** Wert ein - auch dann, wenn er Ihnen falsch vorkommt. Ein Characterization Test hält fest, was //ist//, nicht was sein sollte. 
 + 
 +<WRAP center round important 80%> 
 +Raten Sie nicht. Ein geratener Wert fällt sofort durch, weil die Funktion etwas anderes liefert. 
 +</WRAP> 
 + 
 +Auch der Absturz gehört dazu: ''test_leere_punkteliste'' erwartet eine Ausnahme. Tragen Sie ein, welche tatsächlich auftritt. 
 + 
 +==== 3. Refactoren ==== 
 + 
 +Erst jetzt: sprechende Namen, benannte Konstanten, die Rundungsregel als eigene Funktion. Nach jedem Schritt ''pytest''. Alle sieben Tests bleiben grün
 + 
 +==== 4. Bewerten ==== 
 + 
 +Notieren Sie in ''BEFUND.md'', welche Ergebnisse Sie für fachlich falsch halten und was zu tun wäre. **Ändern Sie das Verhalten nicht** - das wäre ein Bugfix und gehört in einen eigenen Commit nach dem Refactoring. 
 + 
 +==== Bewertung ==== 
 + 
 +^ Teil ^ Punkte ^ 
 +| Tests (''main_test.py'') | 14 | 
 +| pylint (''main.py'') | 5 | 
 + 
 +Die Punkte gibt es nur, wenn der eingetragene Wert dem tatsächlichen Verhalten entspricht **und** die Funktion nach dem Refactoring immer noch so reagiert.
  
 ==== Leitfragen ==== ==== Leitfragen ====
Zeile 34: Zeile 57:
  
 ---- ----
 +<nodisp>https://github.com/templates-python/m323-lu07-a07-characterization</nodisp>
 {{tag>M323-LU07 M323-D1I}} {{tag>M323-LU07 M323-D1I}}
 [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi
  
  • modul/m323/learningunits/lu07/aufgaben/characterization.1788945333.txt.gz
  • Zuletzt geändert: 2026/09/09 11:15
  • von admin