SWEME Praktikum
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 2.4KB

2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. # Programmieren 3
  2. ## Assignment "TDD Einführung"
  3. ### Ausgangssituation
  4. #### Test Driven Development (TDD)
  5. Bei TDD gilt die Regel: Produktivcode darf erst geschrieben werden, wenn
  6. ein Test vorliegt, der scheitert. Und auch dann soll nur gerade so
  7. viel Code geschrieben werden, um den Testfall (und alle anderen Tests)
  8. erfolgreich ausführen zu können.
  9. #### Struktur des Assignments
  10. Das Assignment besteht aus zwei Java-Klassen:
  11. - <code>TriangleChecker</code> enthält den Produktivcode
  12. - <code>TriangleCheckerTest</code> enthält die Tests
  13. Mit Hilfe von TDD soll insbesondere die Methode
  14. <code>
  15. checkTriangle(float a, float b, float c)
  16. </code>
  17. entwickelt werden. Diese Methode hat die Aufgabe, anhand
  18. der übergebenen drei Seitenlängen zu entscheiden, ob es
  19. sich um ein normales, ein gleichschenkliges, ein
  20. gleichseitiges oder gar kein Dreieck handelt.
  21. ### Aufgabenstellung
  22. #### Normales Dreieck
  23. Mit dem Assignment kommt ein erster Testfall,
  24. der überprüft, ob ein normales Dreieck richtig erkannt
  25. wird. Sorgen Sie dafür, dass der Testfall nicht mehr scheitert.
  26. Achten Sie darauf, dass Sie nicht mehr implementieren, als
  27. zur Lösung dieses Testfalls notwendig ist. Weitere
  28. Fälle müssen noch nicht erkannt werden.
  29. #### Gleichseitiges Dreieck
  30. Erstellen Sie nun einen Testfall, der überprüft,
  31. ob ein gleichseitiges Dreieck erkannt wird.
  32. Da Sie bisher nur normale Dreiecke identifizieren,
  33. wird dieser Testfall zunächst scheitern.
  34. Nehmen Sie nun minimale Änderungen am Produktivcode vor,
  35. so dass beide Testfälle fehlerfrei ausgeführt werden.
  36. #### Kein Dreieck
  37. Es gibt Zahlenkombinationen, die nicht zu einem
  38. Dreieck passen (z.B. negative Zahlen oder
  39. eine überlange Seite, so dass die anderen beiden
  40. Seiten das Dreieck nicht abschließen können).
  41. Erstellen Sie jeweils eigene Testfälle für diese
  42. Art von Zahlenkombinationen. Das sind mindestens
  43. 6 weitere Testfälle (warum?).
  44. Korrigieren Sie anschließend den Produktivcode,
  45. so dass alle Tests durchlaufen.
  46. #### Gleichschenkliges Dreieck
  47. Schließlich sollen noch gleichschenklige Dreiecke
  48. erkannt werden. Dabei soll die
  49. Methode stets die genaueste Information
  50. zurückliefern, d.h.
  51. - bei einem gleichseitigen Dreieck *EQUILATERAL*, auch wenn
  52. ein gleichseitiges Dreieck natürlich auch gleichschenklig
  53. ist.
  54. - bei einem gleichschenkligem Dreieck *ISOSCELES*, auch wenn
  55. ein gleichschenkliges Dreieck natürlich auch ein
  56. normales Dreieck ist.
  57. Verwenden Sie auch hier die TDD-Vorgehensweise.